﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Website.Logger;
using DAL;
using UtilityExtensions;
using BOL;
using BOL.UI;
using WebLib;
using System.Web.Script.Services;
using System.Web.Services;


namespace UILGestion.VentaAdmin.UI
{
    public partial class UIReadForm : System.Web.UI.Page
    {
        public UIReadForm()
        {
            bol = new UIBL();
        }

        private UIBL bol;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    
                    internalID.Value = (string)Request.QueryString["id"];
                    
                    idProyecto.Value = (string)Request.QueryString["idProyecto"];
                    paginaAnt.Value = Page.Request.UrlReferrer.AbsoluteUri;
                    menuCtrl1.loadMenuVenta(idProyecto.Value.ToInt());
                    FormatForm();

                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);

                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                         "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }

            }
        }

        private void FormatForm()
        {

           
            Load();

        }
        private void Load()
        {
            DAL.UI ui = DbUtil.Db.UIs.Single(p => p.idInternal == internalID.Value.ToInt());

            codigoTXT.Text = ui.codigo;
            descripcionTXT.Text = ui.descripcion;


            fechaFinTXT.Text = ui.fechaFin.ToShortDateString();
            comentarioTXT.Text = ui.comentario;
            bitActivoCHK.Checked = ui.bitActivo;

            direccionTXT.Text = ui.direccion;
            referenciaTXT.Text = ui.referencia;

            estadoLBL.Text = ui.EstadoItem.descripcion;

            //if  (ordenVenta
            if (ui.idEstado==2 |ui.idEstado==16)     //16 es vendido //2 en separacion
            {
                var ordenVenta=DbUtil.Db.OrdenVentaItems.Single(p=>p.idUI==ui.idInternal & p.OrdenVenta.idEstado!=10).OrdenVenta;
                OrdenVentaHLK.NavigateUrl = "~/VentaAdmin/OrdenVenta/OrdenVentaReadForm.aspx?id={0}&idProyecto={1}".Fmt(ordenVenta.idInternal, ordenVenta.idProyecto);
                OrdenVentaHLK.Text = "OV-{0}".Fmt(ordenVenta.numDocumento);
                eliminarBTN.Visible = false;
                

            }
            
           
            plazoMaxEntregaTXT.Text = ui.plazoMaxEntrega.ToString();
            fechaFinTXT.Text = ui.fechaFin.ToShortDateString();
            comentarioTXT.Text = ui.comentario;
            bitActivoCHK.Checked = ui.bitActivo;
            urbanizacionTXT.Text = ui.urbanizacion;

            etapaLBL.Text = ui.Etapa.descripcion;
            idtipoUIDDL.Text = ui.UITipo.descripcion;
            tipoAtributoDDL.Text = ui.GrupoDatoitem.descripcion;
            tipoModeloDDL.Text = ui.Etapa.descripcion;
            ////----------------construccion------------------


            loteconsPNL.Visible = false;
            depaPNL.Visible = false;
            //1: deparatamento segun tabla grupoDatos
            if (ui.idTipoUI== 1)
            {
                loteconsPNL.Visible = false;
                depaPNL.Visible = true;
                ConstruccionUPNL.Update();
            }
            //4: lote
            if (ui.idTipoUI == 4)
            {
                loteconsPNL.Visible = true;
                depaPNL.Visible = false;
                ConstruccionUPNL.Update();
            }


            areaTerrenoTXT.Text = ui.areaTerreno.ToString();
            areaTechadaTXT.Text = ui.areaTechada.ToString();
            areOcupadaTXT.Text = ui.areaOcupada.ToString();
            fondoTXT.Text = ui.fondo.ToString();
            frenteTXT.Text = ui.frente.ToString();
            derechoTXT.Text = ui.derecha.ToString();
            izquierdoTXT.Text = ui.izquierdo.ToString();
            numPartidaTXT.Text = ui.numPartida;

            numPisoTXT.Text = ui.numPiso.ToString();
            dormitorio1TXT.Text = ui.dormitorio1.ToString();
            dormitorio2TXT.Text = ui.dormitorio2.ToString();
            dormitorio3TXT.Text = ui.dormitorio3.ToString();
            dormitorio4TXT.Text = ui.dormitorio4.ToString();
            banio1TXT.Text = ui.banio1.ToString();
            banio2TXT.Text = ui.banio2.ToString();
            banio3TXT.Text = ui.banio3.ToString();
            comedorTXT.Text = ui.comedor.ToString();
            salaTXT.Text = ui.sala.ToString();
            salaComedorCicinaTXT.Text = ui.salaComedorCocina.ToString();
            salaComedorTXT.Text = ui.salaComedor.ToString();
            cocinaTXT.Text = ui.cocina.ToString();
            patioTXT.Text = ui.patio.ToString();
            labanderiaTXT.Text = ui.labanderia.ToString();
            patioLabanderiaTXT.Text = ui.patioLabanderia.ToString();
            zonaComunTXT.Text = ui.zonaComun.ToString();

            //------------------------------ Precio

            precioTXT.Text =string.Format("{0:N}", ui.precio);
            separacionTXT.Text = string.Format("{0:N}", ui.montoSeparacion);
            monedaDDL.Text = ui.Moneda.descripcion;

            //--------------------------------------
            
            localizacionDDL.Text = ui.UILocalizacion.descripcion;
           
            //----------------------------------------------------///-----------
            tipoBloqueDDL.Text = ui.UIBloque.descripcion;
            tipoModeloDDL.Text = ui.UIModeloTipo.descripcion;
            numDormitorioTXT.Text = ui.dormitorios.ToString();
            numBanioTXT.Text = ui.banio.ToString();
           
           
            //------------------------------------------------------
            bloqueoBTN.Visible = false;
            //1	Disponible
            //2	Separado
            //16	Vendido
            //17	Bloqueado

            if (ui.idEstado != 2 & ui.idEstado != 16)
            {
                bloqueoBTN.Visible = true;
                bloqueoBTN.Text = ui.idEstado == 1 ? "Bloquear UI" : "Desbloquear UI";
               
            }



           
        }
       

        protected void button(object sender, EventArgs e)
        {
            try
            {

                if (((Button)sender).ID == refreshBTN.ID)
                {
                    FormatForm();
                }
                if (((Button)sender).ID==nuevoBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/UI/UIEditForm.aspx?type=A&idProyecto={0}".Fmt(idProyecto.Value),true);
                }
                if (((Button)sender).ID == EditarBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/UI/UIEditForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(internalID.Value, idProyecto.Value), true);
                }
                if (((Button)sender).ID == eliminarBTN.ID)
                {

                    bol.delete(internalID.Value.ToInt());
                    Response.Redirect(paginaAnt.Value, true);
                }
                if (((Button)sender).ID == bloqueoBTN.ID)
                {

                    bol.bloqueOrDesBloqueo(internalID.Value.ToInt());
                    Response.Redirect("~/VentaAdmin/UI/UIReadForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(internalID.Value, idProyecto.Value), true);
                    
                }
                if (((Button)sender).ID == anteriorBTN.ID)
                {
                    int idAnterior=new DAL.UI().getidAnterior(DbUtil.Db, internalID.Value.ToInt(),50); //proyecto venta
                    Response.Redirect("~/VentaAdmin/UI/UIReadForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(idAnterior, idProyecto.Value), true);
                }
                if (((Button)sender).ID == siguienteBTN.ID)
                {
                    int idSiguiente = new DAL.UI().getidSiguiente(DbUtil.Db, internalID.Value.ToInt(),50); //proy
                    Response.Redirect("~/VentaAdmin/UI/UIReadForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(idSiguiente, idProyecto.Value), true);
                }

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

    }
}